package cn.itsource.constructor;

/**
 * 构造方法：
 * 		1. 概念：就是一个特殊的方法，是一种新的结构
 * 			1.	构造方法的名字和类名完全一致（包括大小写完全一致）	
			2．   没有返回值类型（void也不行）	 
			3. 	构造方法方法体不能返回任何的数据（就是不能在方法体中return 数据）
			4. 	其他的和普通方法类似 ，可以有修饰符（public、protected、private、默认）,可以有形参列表（形参列表作用：给对象的成员变量赋值）
			5.	构造方法必须有方法体
			6.	构造方法不能有任何非访问性质的修饰符修饰，例如 static、final、synchronized、abstract等都不能修饰构造方法。（过几天学）
 * 		2. 作用：
 * 			1. 给对象成员变量赋值（最重要作用）
 * 			2. 创建对象
 * 	
 * 		3. 语法：
 * 			修饰符 类名(形参列表){
 * 				方法体
 * 			}		
 * 			如：
			public Student(){
				
			}	
 * 
 * 		4. 注意事项：
 * 			1. 目前为止调用构造方法方式：
 * 				new 类名(...);
 * 				调用普通方法：类名/对象名.方法名(...);
 * 
 * 			2. 1. 类中构造方法特点：
				① 	每一个类中都至少有一个构造方法;
				②	如果没有看到（显示的），那么存在一个隐式的无参数的构造方法;
				③	如果一个类中有显示的构造方法，那么隐式的无参的构造方法就不存在了;
				
		5. 给对象成员变量赋值：
			1. 对象名.成员变量 = 值;
			2. 有参构造
			
			配合使用，如果成员变量数量少，就可以直接用有参构造赋值，如果成员变量数量多或者将创建好的对象再重新修改值，则用：无参构造+对象名.成员变量的方式赋值
 * 
 * 
	学生类（模板）：业务类，不是测试类，没有main方法
	
	今天写代码的顺序：
	
		1. 设计业务类（没有main方法），相当于设计模板
			设计类语法：
				public class Xxx{
					数据类型	变量名1;（属性：成员变量）
					数据类型	变量名2;（属性：成员变量）
					...
					
					普通方法（行为）
					
					修饰符 类名(){//无参构造
		 				方法体
		  			}
					
					修饰符 类名(形参列表){//有参构造
		 				方法体
		  			}
				
				} 
				
				类规范书写：
					①类名必须大驼峰
					②类名必须见名知意
					③必须写文档注释：类、成员变量、方法
			
		2. 写一个测试类（有main方法），命名方式：XxxTest
		
		3. 在测试类main方法中，创建对象（相当于复制模板）
			创建对象语法：
				类名 对象名 = new 类名();
			
		4. 在测试类main方法中，将创建对象（相当于复制模板）赋值，相当于填写模板信息
			对象赋值语法：
				对象名.成员变量 = 值;//注意：成员变量的数据类型必须和赋的值类型一致
			
		5. 在测试类main方法中，查询，相当于对象取值
			对象取值语法：
				对象名.成员变量;
				
				
		注意：
			只要是new都表示在堆中创建新对象
				
 */
public class Student {
	/**姓名，是成员变量，静止的部分，是类的属性*/
	String name;
	/**年龄，是成员变量，静止的部分，是类的属性*/
	int age;
	
	/**
	 * 无参构造
	 */
	public Student(){
		System.out.println("Student的无参构造");
//		return;//不能返回一个数据，这里表示结束方法
	}
	
	/**
	 * 有参构造：参数个数根据实际需要确定
	 * 
	 * 作用：给对象成员变量赋值
	 */
	public Student(String n,int a){
		name = n;//给成员变量name赋值为n
		age = a;//给成员变量age赋值为a
		System.out.println("Student的有参构造=============>");
	}
	
}
